#pragma once

#include <common.h>
#include <ir/ir.h>
#include <ir/inst.h>

namespace ir { class Print; }

namespace ir {
  class Print {
  public:
    Print(std::ostream & out);

    void print(CompUnit & comp_unit);
    void print(Func & func);
    void print(Block & block);
    void print(Inst & inst);
  private:
    std::ostream & out;
  };
}
